package nimbus.commands
{
	import nimbus.commands.base.ICommand;
	import nimbus.utils.detectAbstractInstantiation;
	import nimbus.utils.detectAbstractMethodCall;
	
	/**
	 * The command base to be used for handling basic synchronous operations.  While a command class
	 * could simply implement ICommand, this class provides some consistency by making it easy for 
	 * developers to choose which class they should extend for their own needs. 
	 */
	public class SyncCommand implements ICommand
	{
		/**
		 * @private
		 */
		private var _type:String;
		
		/**
		 * @inheritDoc
		 */
		public function get type():String
		{
			return _type;
		} 
		
		/**
		 * @private
		 */
		public function set type(value:String):void
		{
			_type = value;
		}
		
		/**
		 * Constructor.
		 */
		public function SyncCommand()
		{
			detectAbstractInstantiation(this, SyncCommand);
		}
		
		/**
		 * @inheritDoc
		 */
		public function execute():void
		{
			detectAbstractMethodCall();
		}
	}
}